/**********************************************************************************************************************
 * \file Cpu1_Main.c
 * \copyright Copyright (C) Infineon Technologies AG 2019
 * 
 * Use of this file is subject to the terms of use agreed between (i) you or the company in which ordinary course of 
 * business you are acting and (ii) Infineon Technologies AG or its licensees. If and as long as no such terms of use
 * are agreed, use of this file is subject to following:
 * 
 * Boost Software License - Version 1.0 - August 17th, 2003
 * 
 * Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and 
 * accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute,
 * and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the
 * Software is furnished to do so, all subject to the following:
 * 
 * The copyright notices in the Software and this entire statement, including the above license grant, this restriction
 * and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all 
 * derivative works of the Software, unless such copies or derivative works are solely in the form of 
 * machine-executable object code generated by a source language processor.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 
 * COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN 
 * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 
 * IN THE SOFTWARE.
 *********************************************************************************************************************/
#include "Ifx_Types.h"
#include "IfxCpu.h"
#include "IfxScuWdt.h"
#include "drv_src.h"
#include "drv_stm.h"
#include "UART_Logging.h"
#include "srv_uart.h"
#include "FreeRTOSConfig.h"
#include "drv_smu.h"
extern IfxCpu_syncEvent g_cpuSyncEvent;

UART_FIFO  uart_quque;
#if ANSYS_UART
Msg_FiFO_Type debug_info_fifo;
#endif
void core1_main(void)
{
    IfxCpu_enableInterrupts();
    
    /* !!WATCHDOG1 IS DISABLED HERE!!
     * Enable the watchdog and service it periodically if it is required
     */
    IfxScuWdt_disableCpuWatchdog(IfxScuWdt_getCpuWatchdogPassword());
    
    /* Wait for CPU sync event */
    IfxCpu_emitEvent(&g_cpuSyncEvent);
    IfxCpu_waitEvent(&g_cpuSyncEvent, 1);


    bsp_bord_init();
    extern uint32_t get_xhandle_itemsize();
    while(1)
    {
        if(get_xhandle_itemsize())
        {
            trigger_SMU_alarm();
        }
        if(systick_1ms_cpu1>1u)
        {
            systick_1ms_cpu1 = 0u;;
        }
        if(systick_10ms_cpu1>10u)
        {
            systick_10ms_cpu1 = 0u;
        }
        if(systick_100ms_cpu1>100u)
        {
            systick_100ms_cpu1 = 0u;
        }
        if(systick_200ms_cpu1>=200u)
        {
            systick_200ms_cpu1 = 0u;
            uart_print_task();

        }
        if(systick_1000ms_cpu1>1000u)
        {
            systick_1000ms_cpu1 = 0u;
        }

    }
}
  void STM1_ISR()
{

    systick_1ms_cpu1++;
    systick_10ms_cpu1++;;
    systick_100ms_cpu1++;;
    systick_200ms_cpu1++;
    systick_1000ms_cpu1++;
    static int x = 0;
    if(x++>1000)
    {
        x = 0;
        extern void drv_led2_toggle();
        drv_led2_toggle();
    }

}
